from collections import Counter

from flask import render_template

import models
from floodorama import app, db

global_stats = Counter()


def init_gs():
    global global_stats

    for k in db.session.query(models.User).all():
        global_stats["comment_count"] += k.comment_count
        global_stats["comment_length"] += k.comment_length
        global_stats["likecount"] += k.likecount
        global_stats["post_count"] += k.post_count
        global_stats["post_length"] += k.post_length


@app.route('/')
def gen_global_stats():
    fields = []
    if len(global_stats) == 0:
        init_gs()
    fields.append("Общее число комментариев: %d" % global_stats["comment_count"])
    fields.append("Общая длина комментариев: %d" % global_stats["comment_length"])
    if global_stats['comment_count'] != 0:
        fields.append(
            "Средняя длина комментария: %d" % (global_stats["comment_length"] // global_stats["comment_count"]))
    fields.append("Общее число постов: %d" % global_stats["post_count"])
    fields.append("Общая длина постов: %d" % global_stats["post_length"])
    if global_stats['post_count'] != 0:
        fields.append("Средняя длина поста: %d" % (global_stats["post_length"] // global_stats['post_count']))
    fields.append("Количество лайков: %d" % global_stats["like_count"])
    if global_stats["like_count"] != 0:
        fields.append("Среднее число лайков на пост: %d" % (global_stats["post_count"] / global_stats["likecount"]))
    return render_template("global_stats.html", fields=fields)
